home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / util / gnu / gnu_smalltalk1_2.lha / mstcomp.h < prev    next >
C/C++ Source or Header  |  1992-02-15  |  3KB  |  78 lines

  1. /***********************************************************************
  2.  *
  3.  *    Declarations for the byte code compiler.
  4.  *
  5.  ***********************************************************************/
  6.  
  7. /***********************************************************************
  8.  *
  9.  * Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc.
  10.  * Written by Steve Byrne.
  11.  *
  12.  * This file is part of GNU Smalltalk.
  13.  *
  14.  * GNU Smalltalk is free software; you can redistribute it and/or modify it
  15.  * under the terms of the GNU General Public License as published by the Free
  16.  * Software Foundation; either version 1, or (at your option) any later 
  17.  * version.
  18.  * 
  19.  * GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT
  20.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
  21.  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  22.  * more details.
  23.  * 
  24.  * You should have received a copy of the GNU General Public License along with
  25.  * GNU Smalltalk; see the file COPYING.  If not, write to the Free Software
  26.  * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  
  27.  *
  28.  ***********************************************************************/
  29.  
  30.  
  31. /*
  32.  *    Change Log
  33.  * ============================================================================
  34.  * Author      Date       Change 
  35.  * sbb         10 Nov 90      Added latestCompiledMethod, so that some of the
  36.  *              compile methods can get the method that they just
  37.  *              compiled and set its category.
  38.  *
  39.  * sbyrne     2 Sep 89      added descriptor support
  40.  *
  41.  * sbyrne     2 Sep 89      Moved common compiled method structure definition
  42.  *              here, so that the interpeter could share.
  43.  *
  44.  * sbyrne     1 Jan 89      Created.
  45.  *
  46.  */
  47.  
  48. #ifndef __MSTCOMP__
  49. #define __MSTCOMP__
  50.  
  51. #ifndef __MSTINTERP__
  52. #include "mstinterp.h"
  53. #endif
  54.  
  55. struct CompiledMethodStruct {
  56.   OBJ_HEADER;
  57.   OOP        descriptor;
  58.   MethodHeader    header;
  59.   OOP        literals[1];    /* actually, literals followed by bytecodes */
  60. };
  61.  
  62. extern OOP        thisClass, latestCompiledMethod;
  63. extern Boolean        declareTracing;
  64. extern Boolean        emacsProcess;
  65. extern Boolean        skipCompilation;
  66.  
  67. extern void        compileMethod(), executeStatements(),
  68.             installInitialMethods(), setCompilationClass(),
  69.             invokeInitBlocks(), compiledMethodAtPut(),
  70.             setMethodDescriptor(), 
  71.             setCompilationCategory(), copyCompileContext(),
  72.             initDefaultCompilationEnvironment();
  73. extern OOP        compiledMethodAt(), getMethodDescriptor(),
  74.             methodNewOOP();
  75. extern Boolean        validMethodIndex();
  76.  
  77. #endif /* __MSTCOMP__ */
  78.